package com.geaosu.niubiplus_java.utils.ImageLoader;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

import java.io.File;
import java.io.FileOutputStream;
import java.util.UUID;

/**
 * 缓存器 - SD卡缓存
 * 缺点：速度比内存缓存慢一点，存储后需要手动清理，否则会一直存在，耗费存储卡的容量，直到容量用尽
 * 特点：
 * 1.容量大，适合图片多的业务；
 * 2.永久缓存，只要用户不清理存储卡数据，缓存内容就一直会存在；
 */
public class DiskCache {
    private static final String fileCachePath = "/sdcard/aaa-NiuBiPlus/";

    /**
     * 保存
     *
     * @param url
     * @param bitmap
     */
    public void put(String url, Bitmap bitmap) {
        FileOutputStream ops = null;
        try {
            File file = new File(fileCachePath);
            if (!file.exists()) {
                file.mkdirs();
            }
             ops = new FileOutputStream(fileCachePath + url);// 这里存储的文件名称有问题，导致无法在SD卡中存储
//            String uuid = UUID.randomUUID().toString().replace("-", "");
//            ops = new FileOutputStream(fileCachePath + uuid+".png");
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, ops);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (ops != null) {
                try {
                    ops.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }

    /**
     * 获取
     *
     * @param url
     * @return bitmap
     */
    public Bitmap get(String url) {
        return BitmapFactory.decodeFile(fileCachePath + url);
    }
}
